package cc.sunni.service.impl;

import cc.sunni.entity.Student;
import cc.sunni.service.AbsCheckStudent;

import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * 最后实现的是学生性别的校验的子类
 * 只能是"男"或"女"。
 */
public class StGenderCheck extends AbsCheckStudent {

    @Override
    public List<Student> checkStudent(List<Student> studentList) {
        //获取学生年龄不符合条件的学生对象
        List<Student> stGenderIsNotOk = studentList.stream().filter(stu -> {
            String gender = stu.getGender();
            return Objects.isNull(gender) || !("男".equals(gender) || "女".equals(gender));
        }).collect(Collectors.toList());
        System.out.println("性别校验没有通过的数据：" + stGenderIsNotOk.toString());
        //在原有的集合中移除不符合学生年龄的对象集合
        studentList.removeAll(stGenderIsNotOk);
        System.out.println("性别校验通过的数据：" + studentList.toString());
        //返回通过学生姓名校验的学生的集合
        return studentList;
    }
}